package reflect;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface AutoRun {
    /*
        注解可以定义参数,格式如下
        类型 参数名() [default 默认值];

        参数可以定义多个.使用注解时,传递参数的语法为:
        @注解名(参数1=值1,参数2=值2....)

        如果注解中只有一个参数时,通常参数名选取value,此时使用注解
        时,传递参数语法可以忽略参数名,写为:
        @注解名(参数值)  当然也可以写成:@注解名(参数名=参数值)

        例如当前注解实际使用时可以写为:
        @AutoRun(5) 或 @AutoRun(value=5)
        如果AutoRun中参数只有一个,且名字不是value,比如为sum
        那么使用时必须指定参数名:@AutoRun(sum=5)

        参数可以指定默认值,使用关键字default.指定后,使用注解时可以
        不传入参数,该参数会采用默认值.例如:
        @AutoRun  那么value的默认值就是1
     */
    int value() default 1;
}









